#ifndef DAEMON_CORE_H
#define DAEMON_CORE_H

#ifdef __cplusplus
extern "C" {
# endif

#ifdef WIN32

__declspec(dllexport) int  __cdecl DaemonCore_init(char* daemonName, char* remoteIP, int remotePort);
__declspec(dllexport) int  __cdecl DaemonCore_register(int dcID, char* parameterName, void* callback);
__declspec(dllexport) int  __cdecl DaemonCore_start(int dcID);
__declspec(dllexport) int  __cdecl DaemonCore_notify(int dcID, char* parameterName, char* value);
__declspec(dllexport) void __cdecl DaemonCore_dispose();

__declspec(dllexport) int  __cdecl DaemonCore_getRelated(int dcID, const char* path, const char* key, char* value);
__declspec(dllexport) int  __cdecl DaemonCore_clearRelated(int dcID, const char* path);

#else

int  DaemonCore_init(char* daemonName, char* remoteIP, int remotePort);
int  DaemonCore_register(int dcID, char* parameterName, void* callback);
int  DaemonCore_start(int dcID);
int  DaemonCore_notify(int dcID, char* parameterName, char* value);
void DaemonCore_dispose();

int DaemonCore_getRelated(int dcID, const char* path, const char* key, char* value);
int DaemonCore_clearRelated(int dcID, const char* path);

#endif

# ifdef __cplusplus
}
#endif

#endif // DAEMON_CORE_H
